The Internet and its use have expanded greatly in recent years, and this expansion is expected to continue. One significant way in which the Internet is used is the World Wide Web (also referred to as the “web”), which is a collection of documents (referred to as “web pages”) that users can view or otherwise render and which typically include links to one or more other pages that the user can access. Many businesses and individuals have created a presence on the web, typically consisting of one or more web pages describing themselves, describing their products or services, identifying other information of interest, allowing goods or services to be purchased, etc.
Web pages are typically made available on the web via one or more web servers, a process referred to as “hosting” the web pages. Sometimes these web pages are freely available to anyone that requests to view them (e.g., a company's advertisements) and other times access to the web pages is restricted (e.g., a password may be necessary to access the web pages). Given the large number of people that may be requesting to view the web pages (especially in light of the global accessibility to the web), a large number of servers may be necessary to adequately host the web pages (e.g., the same web page can be hosted on multiple servers to increase the number of people that can access the web page concurrently). Additionally, because the web is geographically distributed and has non-uniformity of access, it is often desirable to distribute servers to diverse remote locations in order to minimize access times for people in diverse locations of the world. Furthermore, people tend to view web pages around the clock (again, especially in light of the global accessibility to the web), so servers hosting web pages should be kept functional 24 hours per day.
Managing a large number of servers, however, can be difficult. A reliable power supply is necessary to ensure the servers can run. Physical security is necessary to ensure that a thief or other mischievous person does not attempt to damage or steal the servers. A reliable Internet connection is required to ensure that the access requests will reach the servers. A proper operating environment (e.g., temperature, humidity, etc.) is required to ensure that the servers operate properly. Thus, “co-location facilities” have evolved which assist companies in handling these difficulties.
A co-location facility refers to a complex that can house multiple servers. The co-location facility typically provides a reliable Internet connection, a reliable power supply, and proper operating environment. The co-location facility also typically includes multiple secure areas (e.g., cages) into which different companies can situate their servers. The collection of servers that a particular company situates at the co-location facility is referred to as a “server cluster”, even though in fact there may only be a single server at any individual co-location facility. The particular company is then responsible for managing the operation of the servers in their server cluster.
Such co-location facilities, however, also present problems. One problem is data security. Different companies (even competitors) can have server clusters at the same co-location facility. Care is required, in such circumstances, to ensure that data received from the Internet (or sent by a server in the server cluster) that is intended for one company is not routed to a server of another company situated at the co-location facility.
An additional problem is the management of the servers once they are placed in the co-location facility. Currently, a system administrator from a company is able to contact a co-location facility administrator (typically by telephone) and ask him or her to reset a particular server (typically by pressing a hardware reset button on the server, or powering off then powering on the server) in the event of a failure of (or other problem with) the server. This limited reset-only ability provides very little management functionality to the company. Alternatively, the system administrator from the company can physically travel to the co-location facility him/her-self and attend to the faulty server. Unfortunately, a significant amount of time can be wasted by the system administrator in traveling to the co-location facility to attend to a server. Thus, it would be beneficial to have an improved way to manage server computers at a co-location facility.
Additionally, the world is becoming populated with ever increasing numbers of individual user computers in the form of personal computers (PCs), personal digital assistants (PDAs), pocket computers, palm-sized computers, handheld computers, digital cellular phones, etc. Management of the software on these user computers can be very laborious and time consuming and is particularly difficult for the often non-technical users of these machines. Often a system administrator or technician must either travel to the remote location of the user's computer, or walk through management operations over a telephone. It would be further beneficial to have an improved way to manage remote computers at the user's location without user intervention.
The invention described below addresses these disadvantages, restricting data transfers and managing software components of distributed computers.